package com.dtf.admin.common.utils;

public abstract class CacheUtils{
	
	public static CacheUtils cacheUtils;
	
	//默认空间
	public static final String CACHE_WORKSPACE_DEFAULT = "0";
	
	public static CacheUtils getInst(){
		if (cacheUtils != null) {
			return cacheUtils;
		}
		cacheUtils = SpringUtils.getBean("cacheUtils");
		return cacheUtils;
	}
	
	public abstract String set(String key,Object value);
	
	/**
	 * 
	 * @param key
	 * @param value
	 * @param time 有效时长（秒）
	 * @return
	 */
	public abstract String set(String key,Object value,int effTime);

	/**
	 * 根据key获取值
	 * @param key
	 * @return
	 */
	public abstract <E> E get(String key);
	
	/**
	 * 根据key删除数据
	 * @param key
	 * @return
	 */
	public abstract Long del(String key);
	
	/**
	 * 为key的自增+1
	 * @param key
	 * @return
	 */
	public abstract Long incr(String key);
	/**
	 * 为key的值加number
	 * @param key
	 * @param number 要添加的数字
	 * @return
	 */
	public abstract Long incr(String key,long number);
	
	/**
	 * 为key的自增-1
	 * @param key
	 * @return
	 */
	public abstract Long decr(String key);
	/**
	 * 为key的减去number
	 * @param key
	 * @param number 要减去的的数字
	 * @return
	 */
	public abstract Long decr(String key,long number);
}
